package review.algorithm;

public class BubbleSort {
    public static void sort1(int[] arr) {
        int n = arr.length;
        for (int i = 0; i < n - 1; i++) { // 外层索引 一共有n个元素 只需要比较n-1次
            int flag = 0; // 检查本轮是否有元素交换 每一轮比较初始化为0
            for (int j = 0; j < n - 1 - i; j++) { // 元素从索引0开始比 第一轮比到n-2 第二轮比到n-3
                if (arr[j] > arr[j + 1]) { // 小的排左边 大的排右边
                    int temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                    flag = 1; // 因为发生位置改变了 所以flag变为1
                }
            }
            if (flag == 0) { // 如果这轮排序没有元素位置发生改变 也就是flag记录为0 说明数组已经排序好
                return;
            }
        }
    }


    public static void main(String[] args) {
        int[] arr = {70, 30, 40, 10, 80, 20, 90, 100, 75, 60, 45};
        sort1(arr);
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " ");
        }
    }
}
